package com.hyxt.dao;

import java.util.Map;
import java.util.Set;

/**
 *
 * @author zhangcx
 * @version v1.0
 * @Description
 * @Date: Create in 13:43 2017/11/22
 * @Modifide By:
 **/
public interface CoherenceServiceDAO {
    /**
     * 存入/更新缓存中的数据
     * @param key   关键字
     * @param value    String值
     * @param cacheName    缓存名称
     * @return
     */
    public Boolean putDO(Object key, Object value, String cacheName);
    /**
     * 获得缓存中的数据
     * @param key  查询关键字
     * @param cacheName   缓存名称
     * @return   对应的对象
     */
    public Object getDO(Object key, String cacheName);

    /**
     * 删除数据
     * @param key   关键字
     * @param cacheName   缓存名称
     * @return   boolean
     */
    public Boolean removeDO(Object key,String cacheName);

    /**
     * 批量插入/更新数据
     * @param map   对应的数据形式（key = value）
     * @param cacheName  缓存名称
     * @return   Boolean
     */
    public Boolean putAllDO(Map map,String cacheName);

    /**
     * 根据cohql语句进行查询缓存中的相关数据
     * @param cohql   coherence 缓存像数据库一样进行查询的cohql语句
     * @param parameters  条件参数
     * @param cacheName  缓存名称
     * @return   缓存中value的值条件匹配上的数据 set集合（如果cohql与参数条件都为空值，则查询全部数据）
     */
    public Set<Map.Entry<Object, Object>> getCohqlDO(String cohql,Object[] parameters,String cacheName);
}
